Hi,
About sticky sessions: I don't use load balancer and 99% of time i habe only one instance of tomcat launched (so sticky sessions are useless there). When i launch 2nd instance i change config of httpd to point to second instance only (no load balancer) and stop 1st instance.
Sometimes i have 100% cpu usage when using memcached but here last post seems to have the solution https://code.google.com/p/spymemcached/issues/detail?id=279
Exceptions that occur when using some of the serializers of memcached-session-manager:
ERROR ajp-apr-8009-exec-6 com.webratio.struts.exceptions.GenericExceptionHandler - An error occurred executing action for 'page31'
java.lang.NullPointerException: The type for property lastURL is invalid
at org.apache.struts.action.DynaActionForm.set(DynaActionForm.java:442)
at com.webratio.struts.actions.PageAction.doExecute(PageAction.java:409)
at com.webratio.struts.actions.PageAction.execute(PageAction.java:76)
at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)
at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
or, another serializers give this error (which is in WebRatio's Jump Unit code):
ERROR ajp-apr-8009-exec-10 com.webratio.struts.exceptions.GenericExceptionHandler - An error occurred executing action for 'pcu18d'
java.lang.NullPointerException
at com.webratio.units.controlflow.rtx.JumpUnitService$JumpHistory.jumpForward(JumpUnitService.java:428)
at com.webratio.units.controlflow.rtx.JumpUnitService.executeForward(JumpUnitService.java:141)
at com.webratio.units.controlflow.rtx.JumpUnitService.execute(JumpUnitService.java:122)
at com.webratio.units.controlflow.rtx.JumpUnitService_$$_javassist_197._d0execute(JumpUnitService_$$_javassist_197.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
I think maybe it's possible to write my own Jump Unit alternative without pushing/poping history/context stacks.